package com.yugao.fintech.antelope.shop.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yugao.fintech.antelope.shop.model.entity.UmsMember;
import com.yugao.fintech.antelope.shop.model.rqrs.UmsMemberPageReq;
import com.yugao.fintech.antelope.shop.model.rqrs.UmsMemberReq;
import com.yugao.fintech.antelope.shop.model.rqrs.UmsMemberResp;
import com.yugao.fintech.antelope.shop.model.rqrs.UserStatusUpdateReq;
import com.yugao.fintech.antelope.system.model.rqrs.log.LoginUserGetReq;

/**
 * 用户
 *

 */
public interface UmsMemberService extends IService<UmsMember> {

    /**
     * 分页查询 用户
     *
     * @return 返回分页数据
     */
    IPage<UmsMemberResp> pageUser(UmsMemberPageReq query);

    /**
     * 更新 用户
     *
     * @param rq 修改的记录
     * @return 是否更新成功
     */
    boolean updateUserById(UmsMemberReq rq);
    
    /**
     * 通过id获取 用户
     *
     * @param id 主键
     * @return 是否删除成功
     */
    UmsMemberResp getUserById(Long id);

    /**
     * 通过id删除 用户
     *
     * @param id 主键
     * @return 是否删除成功
     */
    boolean deleteUserById(Long id);

    /**
     * 自动注册一个用户
     */
    UmsMember autoRegister(LoginUserGetReq rq);

    /**
     * 批量修改用户状态
     * @param rq
     */
    void batchUpdateStatus(UserStatusUpdateReq rq);
}
